草庐IT

Python字符串函数及用法 [string]

全部标签

ruby - gem 更新——系统返回 "no implicit conversion of nil into String"

运行gemupdate--system不断返回错误#gemupdate--systemUpdatingrubygems-updateERROR:Whileexecutinggem...(TypeError)noimplicitconversionofnilintoString如何解决?详细:http://pastebin.com/2uBYEMTi 最佳答案 这可能是由于不兼容的gem版本(也许是一个正在做Monkey补丁的gem?)。您可以尝试更新单个gem吗? 关于ruby-gem更新

ruby-on-rails - 如果只有一个存在,是否有用于返回第一个数组元素的 ruby​​ 习惯用法?

如果数组只包含一个值,我想返回数组的第一个元素。目前,我使用:vals.one??vals.first:vals.presence因此:vals=[];vals.one??vals.first:vals.presence#=>nilvals=[2];vals.one??vals.first:vals.presence#=>2vals=[2,'Z'];vals.one??vals.first:vals.presence#=>[2,"Z"]是否有内置的东西可以做到这一点,或者是否有更好的设计考虑?我的用例是特定的,涉及知道从方法(将实现上述代码)中期望什么的演示者。如果这些演示者将所有返回

ruby - 为什么在 Ruby 中存在两种访问模块函数的方式?

moduleAdefself.funcputs"func"endend>>A.funcfunc>>A::funcfunc为什么.和::都存在?为什么不仅是.? 最佳答案 作用域解析运算符(::)可以解析常量、实例方法和类方法,因此只要我们在正确的位置查找,我们就可以将该运算符用于基本上任何方法。此外,由于方法“func”被定义为模块A的类方法(通过self.func,类似于“静态”方法)它直接属于模块(即本身是一个对象)所以它可以用点运算符调用,模块作为接收者。请注意,模块A的实例对“func”没有任何可见性,因为它是一个类方法:a

c - Ruby 的最大函数顺序如何重复?

我一直在看maxmethod在Ruby的Enumerable混合(v2.4.1)。这是一个相当简单的方法,但是当存在重复项时它如何排序项目有点令人困惑。例如:x=[1,2,3,4,5,6,7,8,9]x.max{|a,b|a%2b%2}=>110.times{|y|px.max(y){|a,b|a%2b%2}}[][1][1,7]#whyis7thenextelementafter1?[3,1,5]#whynomore7?[7,3,1,5]#7isnowfirst[9,7,3,1,5][9,7,3,1,5,6][9,7,3,1,5,4,6][9,7,3,1,5,2,4,6][9,7,5

c# - 以与 SO 在版本页面上相同的方式区分两个字符串的算法是什么?

我正在尝试按短语区分两个字符串,类似于StackOverflow在版本编辑页面上区分两个字符串的方式。执行此操作的算法是什么?是否有gems或其他标准库可以实现此目的?编辑:我见过其他差异算法(Differ与Ruby),它们似乎导致以下结果:>>o='nowisthetimewhenallgoodmen.'>>p='nowsometimethementimewhenallgoodmen.'>>Differ.diff_by_word(o,p).format_as(:html)=>"nowsomeistimethementimewhenallgoodmen."请注意每个单词的单词是如何区分

ruby - 一组字符串并重新打开字符串

试图回答这个问题:HowcanImakethesetdifferenceinsensitivetocase?,我正在试验集合和字符串,试图得到一组不区分大小写的字符串。但是由于某种原因,当我重新打开String类时,当我将字符串添加到集合时,我的自定义方法都没有被调用。在下面的代码中,我看不到任何输出,但我希望至少调用一个我重载的运算符。这是为什么?编辑:如果我创建一个自定义类,比如String2,我在其中定义了一个散列方法等,当我将我的对象添加到一个集合时,这些方法会被调用。为什么不是字符串?require'set'classStringalias:compare_orig:defv

ruby - 字符串匹配(正则表达式)与正则表达式匹配(字符串)

Ruby中的string.match(regex)和regex.match(string)有什么区别?在语言中同时使用这两种结构的理由是什么? 最佳答案 除了卡在不同的对象上(有时调用一个对象比调用另一个对象更方便),它们是相同的。理由是它们都很有用,而且有时一个比另一个更方便。 关于ruby-字符串匹配(正则表达式)与正则表达式匹配(字符串),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

ruby - 如何将字符串 "*.*"作为命令行参数传递给 ruby​​?

代码:#test_argv.rbputs"length:#{ARGV.length}"ARGV.eachdo|a|puts"Argument:#{a}"end如果我在调用上述方法时提供字符串"*.*"(带引号或不带引号),我将得到以下输出:C:\test>test_argv*.*length:5Argument:afile.TXTArgument:bfile.TXTArgument:cfile.TXTArgument:dfile.TXTArgument:somethingelse.TXT即c:\test中的文件列表。其他值,如"s*.*"返回somethingelse.TXT,正如您在

ruby - 确定 Ruby 1.9.3 中的字符编码

我的Rails3.2.2/Ruby1.9.3应用程序获取搜索请求,例如:http://booko.com.au/books/search?q=Fran%E7ois+Vergniolle+de+ChantalRuby/Rails接收此查询并对其进行解码-但假定它是UTF-8。在某些时候我得到一个:invalidbytesequenceinUTF-8app/models/product.rb:694:in`upcase'我认为它正在做这样的事情:q="Fran%E7ois+Vergniolle+de+Chantal"=>"Fran%E7ois+Vergniolle+de+Chantal"C

ruby - 为什么 ruby​​ 让我使用 #$$ 在字符串中打印 PID?

我在查看一些代码示例时发现了这一行:puts"child#$$accepting..."哪些输出>>child7231accepting...看起来$$是PID,它利用了普通#{$$}字符串插值语法的一些简写形式。不过我找不到这方面的文档。我很好奇还有哪些速记技巧可用(或者会让我感到困惑)。文档在哪里?为什么这很特别? 最佳答案 Ruby允许您省略全局($var)、实例(@var)和类(@@var)的大括号)进行字符串插值时的变量。 关于ruby-为什么ruby​​让我使用#$$在字符串